package com.shaobufan.museum.common;

public class ResultUtils {

    /**
     * 成功
     *
     * @param data 数据体
     * @param <T> 数据体类型
     * @return 数据集
     */
    public static <T> BaseResponse<T> success(T data, String description) {
        return new BaseResponse<>(1, data, "ok", description);
    }

    /**
     * 失败
     *
     * @param errorCode 错误代码
     * @return 数据集
     */
    public static <T> BaseResponse<T> error(ErrorCode errorCode) {
        return new BaseResponse<>(errorCode);
    }

    /**
     * 失败
     *
     * @param code 错误代码
     * @param message 消息
     * @param description 描述
     * @return 数据集
     */
    public static <T> BaseResponse<T> error(int code, String message, String description) {
        return new BaseResponse<>(code, null, message, description);
    }

    /**
     * 失败
     *
     * @param errorCode 错误代码
     * @return 数据集
     */
    public static <T> BaseResponse<T> error(ErrorCode errorCode, String message, String description) {
        return new BaseResponse<>(errorCode.getCode(), null, message, description);
    }


    /**
     * 失败
     *
     * @param errorCode 错误代码
     * @return 数据集
     */
    public static <T> BaseResponse<T> error(ErrorCode errorCode, String description) {
        return new BaseResponse<>(errorCode.getCode(), null, errorCode.getMessage(), description);
    }

    private ResultUtils() {
        throw new IllegalStateException("Utility class");
    }
}
